home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2011 April / ME_2011_04.iso / [Video-Tutorial] / 9430830 / qicknavigation.swf / scripts / frame_1 / DoAction.as < prev   
Encoding:
Text File  |  2009-08-24  |  15.5 KB  |  434 lines

  1. function openQuickNavigation()
  2. {
  3.    if(!quicknavi_is_open)
  4.    {
  5.       quicknavi_is_open = true;
  6.       quicknavi_index_array = current_index.split(".");
  7.       if(quicknavi_index_array.length > 0)
  8.       {
  9.          quicknavi_index_array.splice(quicknavi_index_array.length - 1,1);
  10.       }
  11.       quicknavi_index_array.splice(0,0,1);
  12.       _localroot.createEmptyMovieClip("quicknavi_holder_mc",_localroot.getNextHighestDepth());
  13.       quicknavi_holder_mc._x = movie_navigation_pos_mc.quicknavi_video_btn._x;
  14.       quicknavi_holder_mc._y = movie_navigation_pos_mc.quicknavi_video_btn._y + 24;
  15.       _localroot.quicknavi_holder_mc.createEmptyMovieClip("bg_mc",1);
  16.       _localroot.quicknavi_holder_mc.createEmptyMovieClip("quicknavi_mc",2);
  17.       _localroot.quicknavi_holder_mc.quicknavi_mc._x = quicknavi_border;
  18.       _localroot.quicknavi_holder_mc.quicknavi_mc._y = quicknavi_border;
  19.       _localroot.quicknavi_holder_mc.createEmptyMovieClip("mask_mc",3);
  20.       _root.drawBox(_localroot.quicknavi_holder_mc.bg_mc,100,100,_root.parseColor(_root.quicknavi_gradient_color_top),_root.parseColor(_root.quicknavi_gradient_color_bottom),100,100,"linear");
  21.       _root.drawBox(_localroot.quicknavi_holder_mc.mask_mc,100,100,0,0,100,100,"linear");
  22.       _localroot.quicknavi_holder_mc.mask_mc._visible = false;
  23.       _localroot.quicknavi_holder_mc.mask_mc._alpha = 20;
  24.       _localroot.quicknavi_holder_mc.mask_mc._x = quicknavi_border;
  25.       _localroot.quicknavi_holder_mc.mask_mc._y = quicknavi_border;
  26.       renderQuicknavi();
  27.       quickNaviMouseListener.onMouseDown = function()
  28.       {
  29.          if(!quicknavi_holder_mc.hitTest(_root._xmouse,_root._ymouse,false) && !movie_navigation_pos_mc.quicknavi_video_btn.hitTest(_root._xmouse,_root._ymouse,false))
  30.          {
  31.             closeQuickNavigation();
  32.          }
  33.       };
  34.       Mouse.addListener(quickNaviMouseListener);
  35.       quickNaviStageListener.onResize = setQuickNaviPos;
  36.       Stage.addListener(quickNaviStageListener);
  37.    }
  38.    else
  39.    {
  40.       closeQuickNavigation();
  41.    }
  42. }
  43. function closeQuickNavigation()
  44. {
  45.    quicknavi_is_open = false;
  46.    _localroot.quicknavi_holder_mc.removeMovieClip();
  47.    Mouse.removeListener(quickNaviMouseListener);
  48.    delete quickNaviMouseListener.onMouseDown;
  49.    delete quickNaviMouseListener.onMouseMove;
  50.    Stage.removeListener(quickNaviStageListener);
  51.    Mouse.removeListener(quickNaviMouseListenerX);
  52.    Mouse.removeListener(quickNaviMouseListenerY);
  53.    delete quickNaviStageListener.onResize;
  54. }
  55. function renderQuicknavi()
  56. {
  57.    var _loc2_ = _localroot.quicknavi_holder_mc.quicknavi_mc;
  58.    var _loc10_ = _localroot.quicknavi_holder_mc.bg_mc;
  59.    var _loc4_ = _localroot.quicknavi_holder_mc.mask_mc;
  60.    _loc2_.stopTween();
  61.    var _loc7_ = _root.cd_content;
  62.    var _loc9_ = 0;
  63.    var _loc8_ = "";
  64.    var _loc5_ = 0;
  65.    while(_loc5_ < quicknavi_index_array.length)
  66.    {
  67.       _loc8_ += "_" + quicknavi_index_array[_loc5_];
  68.       _loc7_ = _loc7_.childNodes[Number(quicknavi_index_array[_loc5_]) - 1];
  69.       if(_loc7_.hasChildNodes())
  70.       {
  71.          if(_loc2_["level_mc" + _loc8_] == undefined)
  72.          {
  73.             var _loc6_ = _loc2_.createEmptyMovieClip("level_mc" + _loc8_,_loc2_.getNextHighestDepth());
  74.             _loc6_._x = _loc9_;
  75.             _loc6_._y = 0;
  76.             renderQuickNaviLevel(_loc6_,_loc7_);
  77.          }
  78.          _loc9_ += _loc2_["level_mc" + _loc8_]._width + quicknavi_item_x_dis;
  79.       }
  80.       _loc5_ = _loc5_ + 1;
  81.    }
  82.    _loc10_._width = Math.round(_loc2_._width + 2 * quicknavi_border);
  83.    _loc10_._height = Math.round(_loc2_._height + 2 * quicknavi_border);
  84.    _loc10_.max_bg_width = _loc10_._width;
  85.    _loc10_.max_bg_height = _loc10_._height;
  86.    _loc4_._width = _loc10_._width - 2 * quicknavi_border;
  87.    _loc4_._height = _loc10_._height - 2 * quicknavi_border;
  88.    setQuickNaviPos();
  89.    for(var _loc11_ in _loc2_)
  90.    {
  91.       if(_loc2_[_loc11_]._height <= _loc4_._height)
  92.       {
  93.          _loc2_[_loc11_]._y = 0;
  94.       }
  95.       else if(_loc2_[_loc11_].hitTest(_root._xmouse,_root._ymouse,false))
  96.       {
  97.          var _loc3_ = Math.round((_loc4_._height - _loc2_[_loc11_]._height) * (_loc4_._ymouse * _loc4_._yscale / 100 - 22) / (_loc4_._height - 44));
  98.          _loc3_ = Math.min(_loc3_,0);
  99.          _loc3_ = Math.max(_loc3_,_loc4_._height - _loc2_[_loc11_]._height);
  100.          _loc2_[_loc11_]._y = _loc3_;
  101.       }
  102.    }
  103.    if(_loc2_._width > _loc4_._width)
  104.    {
  105.       _loc2_.stopTween();
  106.       _loc2_.tween("_x",_loc4_._width - _loc2_._width,0.3,"easeOutQuad");
  107.    }
  108.    else
  109.    {
  110.       _loc2_.stopTween();
  111.       _loc2_.tween("_x",quicknavi_border,0.3,"easeOutQuad");
  112.    }
  113. }
  114. function renderQuickNaviLevel(holder_mc, level_node)
  115. {
  116.    var _loc7_ = 0;
  117.    var _loc6_ = 0;
  118.    var _loc5_ = 0;
  119.    var _loc3_ = level_node.firstChild;
  120.    while(_loc3_ != null)
  121.    {
  122.       var _loc2_ = holder_mc.attachMovie("quicknavi_item_mc","item_mc" + _loc6_,holder_mc.getNextHighestDepth());
  123.       _loc2_._x = 0;
  124.       _loc2_._y = _loc7_;
  125.       _loc2_.item_index = _loc3_.attributes.index;
  126.       _loc2_.item_name = _loc3_.attributes.name;
  127.       _loc2_.teaser = _loc3_.attributes.teaser;
  128.       _loc2_.item_type = _loc3_.attributes.type;
  129.       _loc2_.movie = _loc3_.attributes.movie;
  130.       setRGB(_loc2_.bg_mc,_root.parseColor(_root.quicknavi_rollover_color));
  131.       _loc2_.bg_mc._alpha = 0;
  132.       _loc2_.index_op.textColor = _root.parseColor(_root.quicknavi_index_color);
  133.       _loc2_.index_op.autoSize = true;
  134.       _loc2_.index_op.text = _loc3_.attributes.index;
  135.       _loc2_.text_op.textColor = _root.parseColor(_root.quicknavi_color);
  136.       _loc2_.text_op._x = Math.round(Math.max(_loc2_.text_op._x,_loc2_.index_op._x + _loc2_.index_op._width + 6));
  137.       _loc2_.text_op.autoSize = true;
  138.       _loc2_.text_op.text = _loc3_.attributes.name;
  139.       if(_loc2_.item_type == "movie")
  140.       {
  141.          _loc2_.symbol_mc.attachMovie("play_icon_mc","icon_mc",1);
  142.       }
  143.       else if(_loc2_.item_type == "menu")
  144.       {
  145.          _loc2_.symbol_mc.attachMovie("folder_icon_mc","icon_mc",1);
  146.       }
  147.       else if(_loc2_.item_type == "toolbar")
  148.       {
  149.          _loc2_.symbol_mc.attachMovie("toolbar_icon_mc","icon_mc",1);
  150.       }
  151.       else if(_loc2_.item_type == "toolbar_advanced")
  152.       {
  153.          _loc2_.symbol_mc.attachMovie("toolbar_icon_mc","icon_mc",1);
  154.       }
  155.       else if(_loc2_.item_type == "mct")
  156.       {
  157.          _loc2_.symbol_mc.attachMovie("mct_icon_mc","icon_mc",1);
  158.       }
  159.       else if(_loc2_.item_type == "summary")
  160.       {
  161.          _loc2_.symbol_mc.attachMovie("summary_icon_mc","icon_mc",1);
  162.       }
  163.       _loc2_.symbol_mc.icon_mc._width = 16;
  164.       _loc2_.symbol_mc.icon_mc._height = 16;
  165.       if(_loc3_.attributes.cd == "0")
  166.       {
  167.          _loc2_.text_op.text += " (" + _root.demo_only_sentence + ")";
  168.          _loc2_._alpha = 50;
  169.          _loc2_.enabled = false;
  170.       }
  171.       _loc5_ = Math.max(_loc5_,Math.ceil(_loc2_.text_op._x + _loc2_.text_op._width));
  172.       _loc2_.bg_mc.onRelease = quicknaviItem_onClick;
  173.       _loc2_.bg_mc.onRollOver = quicknaviItem_onRollOver;
  174.       _loc2_.bg_mc.onRollOut = quicknaviItem_onRollOut;
  175.       if(_loc3_.attributes.index == current_index)
  176.       {
  177.          _loc2_.bg_mc.onRollOver();
  178.          _loc2_.bg_mc.enabled = false;
  179.       }
  180.       _loc6_ = _loc6_ + 1;
  181.       _loc7_ += quicknavi_item_y_dis;
  182.       _loc3_ = _loc3_.nextSibling;
  183.    }
  184.    _loc5_ = Math.min(_loc5_,quicknavi_max_text_width);
  185.    for(var _loc8_ in holder_mc)
  186.    {
  187.       holder_mc[_loc8_].text_op.autoSize = false;
  188.       holder_mc[_loc8_].text_op.wordWrap = true;
  189.       holder_mc[_loc8_].text_op.multiline = true;
  190.       holder_mc[_loc8_].text_op._width = _loc5_ - holder_mc[_loc8_].text_op._x;
  191.       holder_mc[_loc8_].text_op.stringCutter_advanced(" ...");
  192.       holder_mc[_loc8_].bg_mc._width = _loc5_ + 32;
  193.       holder_mc[_loc8_].symbol_mc._x = holder_mc[_loc8_].bg_mc._width - 22;
  194.    }
  195. }
  196. function quicknaviItem_onClick()
  197. {
  198.    if(this._parent.item_type == "movie")
  199.    {
  200.       closeQuickNavigation();
  201.       startVideoByQuickNavi(this._parent.item_name,this._parent.movie,this._parent.item_index);
  202.    }
  203.    else if(this._parent.item_type == "menu")
  204.    {
  205.       var _loc4_ = this._parent.item_index.split(".");
  206.       _loc4_.splice(_loc4_.length - 1,1);
  207.       _loc4_.splice(0,0,1);
  208.       var _loc6_ = _loc4_.length;
  209.       var _loc3_ = undefined;
  210.       _loc3_ = 0;
  211.       while(_loc3_ < _loc4_.length)
  212.       {
  213.          if(_loc4_[_loc3_] != quicknavi_index_array[_loc3_])
  214.          {
  215.             _loc6_ = _loc3_;
  216.             break;
  217.          }
  218.          _loc3_ = _loc3_ + 1;
  219.       }
  220.       if(_loc6_ < quicknavi_index_array.length)
  221.       {
  222.          _loc3_ = quicknavi_index_array.length - 1;
  223.          while(_loc3_ >= _loc6_)
  224.          {
  225.             var _loc5_ = "_" + quicknavi_index_array.join("_");
  226.             _localroot.quicknavi_holder_mc.quicknavi_mc["level_mc" + _loc5_].removeMovieClip();
  227.             quicknavi_index_array.splice(_loc3_,1);
  228.             _loc3_ = _loc3_ - 1;
  229.          }
  230.       }
  231.       quicknavi_index_array = _loc4_;
  232.       renderQuicknavi();
  233.    }
  234.    else if(this._parent.item_type == "toolbar")
  235.    {
  236.       closeQuickNavigation();
  237.    }
  238.    else if(this._parent.item_type == "toolbar_advanced")
  239.    {
  240.       closeQuickNavigation();
  241.    }
  242.    else if(this._parent.item_type == "mct")
  243.    {
  244.       closeQuickNavigation();
  245.       _root.renderMCT(this._parent.movie);
  246.    }
  247.    else if(this._parent.item_type == "summary")
  248.    {
  249.       closeQuickNavigation();
  250.    }
  251. }
  252. function quicknaviItem_onRollOver()
  253. {
  254.    if(this.enabled)
  255.    {
  256.       this._alpha = Number(_root.quicknavi_rollover_alpha);
  257.       this._parent.text_op.textColor = _root.parseColor(_root.quicknavi_rollover_color);
  258.    }
  259. }
  260. function quicknaviItem_onRollOut()
  261. {
  262.    if(this.enabled)
  263.    {
  264.       trace("roll out");
  265.       this._alpha = 0;
  266.       this._parent.text_op.textColor = _root.parseColor(_root.quicknavi_color);
  267.    }
  268. }
  269. function setQuickNaviPos()
  270. {
  271.    var _loc6_ = Stage.width - _localroot.quicknavi_holder_mc._x - 20;
  272.    var _loc5_ = Stage.height - _localroot.quicknavi_holder_mc._y - 20;
  273.    var _loc1_ = _localroot.quicknavi_holder_mc.quicknavi_mc;
  274.    var _loc3_ = _localroot.quicknavi_holder_mc.bg_mc;
  275.    var _loc2_ = _localroot.quicknavi_holder_mc.mask_mc;
  276.    if(_loc3_.max_bg_width > _loc6_)
  277.    {
  278.       _loc3_._width = _loc6_;
  279.       _loc2_._width = _loc6_ - 2 * quicknavi_border;
  280.       Mouse.removeListener(quickNaviMouseListenerX);
  281.       quickNaviMouseListenerX.onMouseMove = quickNaviMouseXpos;
  282.       Mouse.addListener(quickNaviMouseListenerX);
  283.    }
  284.    else
  285.    {
  286.       _loc3_._width = _loc3_.max_bg_width;
  287.       _loc2_._width = _loc3_.max_bg_width - 2 * quicknavi_border;
  288.       Mouse.removeListener(quickNaviMouseListenerX);
  289.    }
  290.    if(_loc3_.max_bg_height > _loc5_)
  291.    {
  292.       _loc3_._height = _loc5_;
  293.       _loc2_._height = _loc5_ - 2 * quicknavi_border;
  294.       for(var _loc4_ in _loc1_)
  295.       {
  296.          if(_loc1_[_loc4_]._y < 0 && _loc1_[_loc4_]._y + _loc1_[_loc4_]._height < _loc2_._height)
  297.          {
  298.             _loc1_[_loc4_]._y = _loc2_._height - _loc1_[_loc4_]._height;
  299.          }
  300.       }
  301.       Mouse.removeListener(quickNaviMouseListenerY);
  302.       quickNaviMouseListenerY.onMouseMove = quickNaviMouseFollow;
  303.       Mouse.addListener(quickNaviMouseListenerY);
  304.    }
  305.    else
  306.    {
  307.       _loc3_._height = _loc3_.max_bg_height;
  308.       _loc2_._height = _loc3_.max_bg_height - 2 * quicknavi_border;
  309.       Mouse.removeListener(quickNaviMouseListenerY);
  310.       for(_loc4_ in _loc1_)
  311.       {
  312.          _loc1_[_loc4_]._y = 0;
  313.       }
  314.    }
  315. }
  316. function quickNaviMouseFollow()
  317. {
  318.    trace("quickNaviMouseFollow");
  319.    clearInterval(quicknavi_y_mf_delay);
  320.    var _loc2_ = _localroot.quicknavi_holder_mc.quicknavi_mc;
  321.    var _loc4_ = _localroot.quicknavi_holder_mc.mask_mc;
  322.    var _loc5_ = true;
  323.    for(var _loc6_ in _loc2_)
  324.    {
  325.       if(_loc2_[_loc6_]._height <= _loc4_._height)
  326.       {
  327.          _loc2_[_loc6_]._y = 0;
  328.       }
  329.       else if(_loc2_[_loc6_].hitTest(_root._xmouse,_root._ymouse,false))
  330.       {
  331.          var _loc3_ = Math.round((_loc4_._height - _loc2_[_loc6_]._height) * (_loc4_._ymouse * _loc4_._yscale / 100 - 22) / (_loc4_._height - 44));
  332.          _loc3_ = Math.min(_loc3_,0);
  333.          _loc3_ = Math.max(_loc3_,_loc4_._height - _loc2_[_loc6_]._height);
  334.          if(_loc3_ != _loc2_[_loc6_]._y)
  335.          {
  336.             _loc2_[_loc6_]._y += (_loc3_ - _loc2_[_loc6_]._y) / quicknavi_y_mf_speed;
  337.             _loc5_ = false;
  338.          }
  339.       }
  340.    }
  341.    if(!_loc5_)
  342.    {
  343.       quicknavi_y_mf_delay = setTimeout(quickNaviMouseFollow,quicknavi_y_mf_time);
  344.    }
  345. }
  346. function quickNaviMouseXpos()
  347. {
  348.    trace("quickNaviMouseXpos");
  349.    var _loc2_ = _localroot.quicknavi_holder_mc.quicknavi_mc;
  350.    var _loc3_ = _localroot.quicknavi_holder_mc.mask_mc;
  351.    if(!_loc2_.isTweening())
  352.    {
  353.       for(var _loc8_ in _loc2_)
  354.       {
  355.          if(_loc2_[_loc8_].hitTest(_root._xmouse,_root._ymouse,false))
  356.          {
  357.             var _loc5_ = {x:_loc2_[_loc8_]._x,y:_loc2_[_loc8_]._y};
  358.             _loc2_.localToGlobal(_loc5_);
  359.             _localroot.quicknavi_holder_mc.globalToLocal(_loc5_);
  360.             var _loc4_ = {x:_loc2_[_loc8_]._x + _loc2_[_loc8_]._width - _loc2_._x,y:_loc2_[_loc8_]._y + _loc2_[_loc8_]._height - _loc2_._y};
  361.             _loc2_.localToGlobal(_loc4_);
  362.             _localroot.quicknavi_holder_mc.globalToLocal(_loc4_);
  363.             if(_loc5_.x < _loc3_._x)
  364.             {
  365.                _loc2_.stopTween();
  366.                _loc2_.tween("_x",_loc3_._x,0.3,"easeOutQuad",0);
  367.             }
  368.             else if(_loc4_.x > _loc3_._x + _loc3_._width)
  369.             {
  370.                _loc2_.stopTween();
  371.                _loc2_.tween("_x",_loc3_._x + _loc3_._width - _loc4_.x,0.3,"easeOutQuad",0);
  372.             }
  373.             break;
  374.          }
  375.       }
  376.    }
  377. }
  378. function startVideoByQuickNavi(movie_name, movie, chapter)
  379. {
  380.    var _loc3_ = chapter.split(".");
  381.    if(_loc3_.length > 0 && isNaN(Number(_loc3_[_loc3_.length - 1])))
  382.    {
  383.       _loc3_.splice(_loc3_.length - 1,1);
  384.    }
  385.    var _loc4_ = _root.cd_content.firstChild;
  386.    if(_loc3_.length > 1)
  387.    {
  388.       var _loc2_ = 0;
  389.       while(_loc2_ < _loc3_.length - 1)
  390.       {
  391.          _loc4_ = _loc4_.childNodes[_loc3_[_loc2_] - 1];
  392.          _loc2_ = _loc2_ + 1;
  393.       }
  394.    }
  395.    _root.renderVideoBookmark(_loc4_,movie,movie_name,undefined);
  396. }
  397. function setRGB(mc, color)
  398. {
  399.    var _loc1_ = new flash.geom.ColorTransform();
  400.    _loc1_.rgb = color;
  401.    var _loc2_ = new flash.geom.Transform(mc);
  402.    _loc2_.colorTransform = _loc1_;
  403. }
  404. movie_navigation_pos_mc._visible = false;
  405. movie_navigation_pos_mc.quicknavi_video_btn.onRelease = openQuickNavigation;
  406. var _localroot = this;
  407. current_index = "4.1.2.";
  408. quicknavi_gradient_color_top = "92285f";
  409. quicknavi_gradient_color_bottom = "401629";
  410. quicknavi_index_color = "ffffff";
  411. quicknavi_color = "eaaccb";
  412. quicknavi_rollover_color = "ffffff";
  413. quicknavi_rollover_alpha = "10";
  414. gradient_movie_icon_top = "a7296a";
  415. gradient_movie_icon_bottom = "401629";
  416. gradient_other_icon_top = "8e8e8e";
  417. gradient_other_icon_bottom = "555555";
  418. icon_symbol_color = "000000";
  419. demo_only_sentence = "Nur in der Vollversion enthalten";
  420. var quickNaviMouseListener = new Object();
  421. var quickNaviMouseListenerY = new Object();
  422. var quickNaviMouseListenerX = new Object();
  423. var quickNaviStageListener = new Object();
  424. var quicknavi_index_array = new Array();
  425. var quicknavi_item_y_dis = 22;
  426. var quicknavi_item_x_dis = 12;
  427. var quicknavi_border = 12;
  428. var quicknavi_max_text_width = 300;
  429. var quicknavi_is_open;
  430. var level_depth = -100;
  431. var quicknavi_y_mf_delay;
  432. var quicknavi_y_mf_time = 20;
  433. var quicknavi_y_mf_speed = 8;
  434.